home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib08.dsk / APPLE SLUGGER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  9KB  |  147 lines

  1. 100 X =  RND( - PEEK(78) - PEEK(79) *256): REM  SEED RANDOM TABLE
  2. 500 TMAB = 1:X0 = 2:Y0 = 2: DIM B(3): HOME : VTAB 12: HTAB 10: PRINT "APPLE SLUGGER": PRINT : HTAB 10: PRINT "BY ROBERT DEVINE": PRINT : HTAB 10: PRINT "COPYRIGHT (C) 1982": HTAB 10: PRINT "BY MICRO-SPARC INC"
  3. 520  GOSUB 9130: GOSUB 9130:D$ =  CHR$(4)
  4. 550  HIMEM: 38144: IF  PEEK(38250) <255  THEN  POKE 38250,255: PRINT D$"BLOAD PLAYER": POKE 232,0: POKE 233,149
  5. 700  GOSUB 9000: GOSUB 8605: GOSUB 8620: GOSUB 6500:Y = 99
  6. 720  FOR X = 1 TO 8: POKE 768,40: POKE 769,30: CALL 770: ON X GOSUB 8511,8512,8513,8514,8515,8516,8517,8518: HCOLOR= 3: GOSUB 8700: NEXT X: GOSUB 8525: HCOLOR= 0: GOSUB 8700
  7. 1030  IF Y = 99  THEN  GOSUB 8850
  8. 1040  GOSUB 9200: IF TMAB$ = T1$  THEN  GOSUB 7500
  9. 1080  IF TMAB$ = T2$  THEN  GOSUB 7550
  10. 1090  POKE 768,50: POKE 769,50: CALL 770: GOSUB 7000: GOSUB 8400
  11. 1120  IF PR = 99  THEN  GOSUB 7300: HCOLOR= 1: GOSUB 8700: FOR X = 1 TO 5: ON X GOSUB 8511,8512,8513,8514,8515: HCOLOR= 3: GOSUB 8700: NEXT X
  12. 1140  GOSUB 8620: IF BC = 99  THEN  GOSUB 8200
  13. 1160  IF BC = 50  THEN  FOR X = 1 TO 50:Y =  PEEK( -16336) - PEEK( -16336): NEXT : GOSUB 8000
  14. 1170  GOSUB 8815: FOR X = 1 TO 3: IF B(X) = 1  THEN  HCOLOR= 0
  15. 1200  IF B(X) = 0  THEN  HCOLOR= 1
  16. 1220  ON X GOSUB 8535,8540,8545: GOSUB 8700: NEXT : GOTO 720
  17. 6500  FOR X = 770 TO 790: READ Y: POKE X,Y: NEXT : RETURN 
  18. 6510  DATA  173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,2,3,96
  19. 7000 Y = 0:PR = 50:Z =  INT( RND(1) *7) -1: IF Z <2  THEN 7000
  20. 7005  FOR X = 97 TO 142  STEP Z
  21. 7010  HCOLOR= 3: FOR Z = 0 TO 2: HPLOT 139,X +Z TO 141,X +Z: NEXT Z: HCOLOR= 1: FOR Z = 0 TO 2: HPLOT 139,X +Z TO 141,X +Z: NEXT Z
  22. 7015  GOSUB 7100: NEXT X: RETURN 
  23. 7100  IF X <106  THEN  RETURN 
  24. 7105  IF TMAB$ = T1$  AND  PEEK( -16287) <128  THEN  RETURN 
  25. 7110  IF TMAB$ = T2$  AND  PEEK( -16286) <128  THEN  RETURN 
  26. 7120  HCOLOR= 0: HPLOT 135,138 TO 152,138: HPLOT 135,139 TO 152,139: POKE 768,200: POKE 769,50: CALL 770: HCOLOR= 1: HPLOT 135,138 TO 152,138: HPLOT 135,139 TO 152,139
  27. 7125 Y = Y +1: IF Y >1  THEN  RETURN 
  28. 7130  IF X <136  OR X >137  THEN PR = 0: RETURN 
  29. 7135  IF X = 136  OR X = 137  THEN PR = 99: RETURN 
  30. 7300  FOR X = 1 TO 10: POKE 768,20: POKE 769,40: CALL 770: NEXT 
  31. 7310 X = 140:Z =  INT( RND(1) *10) +1: ON Z GOSUB 8511,8511,8514,8514,8512,8512,8515,8515,8513,8513
  32. 7325  FOR Y = 130 TO 4  STEP  -6: ON Z GOSUB 7341,7342,7343,7344,7345,7346,7347,7348,7349,7350: GOSUB 7360: IF BC = 99  THEN Y = 0: GOSUB 7365: RETURN 
  33. 7330  NEXT Y: GOSUB 7365: RETURN 
  34. 7341 X = X -5: RETURN 
  35. 7342 X = X -4: RETURN 
  36. 7343 X = X -3: RETURN 
  37. 7344 X = X -2: RETURN 
  38. 7345 X = X -1: RETURN 
  39. 7346 X = X +1: RETURN 
  40. 7347 X = X +2: RETURN 
  41. 7348 X = X +3: RETURN 
  42. 7349 X = X +4: RETURN 
  43. 7350 X = X +5: RETURN 
  44. 7360  IF   NOT XO  THEN 7370
  45. 7365  HCOLOR= 1: HPLOT X0 -1,Y0 -1 TO X0 +1,Y0 -1: HPLOT X0 -1,Y0 TO X0 +1,Y0: HPLOT X0 -1,Y0 +1 TO X0 +1,Y0 +1: IF Y <4  THEN XO = 0: RETURN 
  46. 7370  HCOLOR= 3: HPLOT X -1,Y -1 TO X +1,Y -1: HPLOT X -1,Y TO X +1,Y: HPLOT X -1,Y +1 TO X +1,Y +1
  47. 7375  IF TMAB$ = T1$  THEN 7390
  48. 7380  IF  PDL(0) >127  THEN XA = 5
  49. 7385  IF  PDL(0) <127  THEN XA =  -5
  50. 7386  GOTO 7400
  51. 7390  IF  PDL(1) >127  THEN XA = 5
  52. 7395  IF  PDL(1) <127  THEN XA =  -5
  53. 7400 XO = XN:XN = XN +XA:YO = YN: IF XN <5  THEN XN = 5
  54. 7406  IF XN >250  THEN XN = 250
  55. 7410  HCOLOR= 1: GOSUB 8730: HCOLOR= 3: GOSUB 8700:X0 = X:Y0 = Y
  56. 7430  IF XN +8 -X <4  AND XN +8 -X > -4  AND YN +10 -Y <5  AND YN +10 -Y > -5  THEN BC = 99: RETURN 
  57. 7435 BC = 50: RETURN 
  58. 7500 Y =  PEEK( -16286): IF Y >127  THEN  RETURN 
  59. 7510  GOTO 7500
  60. 7550 Y =  PEEK( -16287): IF Y >127  THEN  RETURN 
  61. 7560  GOTO 7550
  62. 8000 BALL = 0:STRIKE = 0
  63. 8005  HOME : VTAB 23:X =  INT( RND(1) *10) +1: ON X GOSUB 8030,8035,8035,8040,8040,8040,8045,8045,8045,8045: GOTO 9130
  64. 8030  IF TMAB$ = T1$  THEN R1N = R1N +B(1) +B(2) +B(3) +1
  65. 8031  IF TMAB$ = T2$  THEN R2N = R2N +B(1) +B(2) +B(3) +1
  66. 8032  PRINT "THE ";TMAB$;" GET A ";B(1) +B(2) +B(3) +1;" RUN HOME RUN":B(1) = 0:B(2) = 0:B(3) = 0: RETURN 
  67. 8035  IF TMAB$ = T1$  THEN R1N = R1N +B(1) +B(2) +B(3)
  68. 8036  IF TMAB$ = T2$  THEN R2N = R2N +B(1) +B(2) +B(3)
  69. 8037  PRINT "THE ";TMAB$;" GET A TRIPLE & SCORE ";B(1) +B(2) +B(3);" RUNS":B(1) = 0:B(2) = 0:B(3) = 1: RETURN 
  70. 8040  HTAB 8: PRINT "THE ";TMAB$;" GET A DOUBLE":B(2) = B(2) +1: IF B(1) = 1  THEN B(3) = B(3) +1
  71. 8043 B(1) = 0: RETURN 
  72. 8045 B(1) = B(1) +1: HTAB 6: PRINT "THAT HIT IS GOOD FOR A SINGLE": RETURN 
  73. 8200  FOR X = 1 TO 10: POKE 768,30: POKE 769,30: CALL 770: NEXT 
  74. 8205  HOME : VTAB 23:X =  INT( RND(1) *6) +1
  75. 8210  ON X GOSUB 8225,8230,8235,8240,8245,8250:BALL = 0:STRIKE = 0:HIT = HIT -1: GOTO 9130
  76. 8225 OUT = OUT +1: PRINT "GROUNDER - THE THROW TO FIRST - OUT ";OUT: IF B(1) = 1  THEN X =  INT( RND(1) *2) +1: IF X = 1  AND OUT <3  THEN OUT = OUT +1: HTAB 9: PRINT "DOUBLE PLAY !!! OUT "OUT:B(1) = 0: GOSUB 9130: RETURN 
  77. 8226  IF B(1) = 1  THEN B(2) = B(2) +1
  78. 8227 B(1) = 0: RETURN 
  79. 8230 OUTS = OUTS +1: HTAB 5: PRINT "HIGH FLY BALL - CAUGHT - OUT ";OUT: RETURN 
  80. 8235 OUTS = OUTS +1: PRINT "LINE DRIVE - FANTASTIC CATCH - OUT ";OUT: RETURN 
  81. 8240 OUTS = OUTS +1: HTAB 5: PRINT "HIGH POP UP - CAUGHT - OUT ";OUT: RETURN 
  82. 8245 B(1) = B(1) +1: PRINT "GROUNDER THROW TO FIRST - NOT IN TIME":HIT = HIT +1: RETURN 
  83. 8250  IF TMAB$ = T1$  THEN E2R = E2R +1
  84. 8251  IF TMAB$ = T2$  THEN E1R = E1R +1
  85. 8252 B(1) = B(1) +1: FOR X = 1 TO 60:Y =  PEEK( -16336) - PEEK( -16336): NEXT : PRINT "BALL IS DROPPED - ERROR - SAFE ON FIRST": RETURN 
  86. 8400  HOME : VTAB 23:BC = 0: IF PR = 0  THEN  FOR X = 1 TO 45:Y =  PEEK( -16336) - PEEK( -16336): NEXT X: GOSUB 8426: RETURN 
  87. 8401  IF PR = 50  THEN X =  INT( RND(1) *8) +1: IF X <5  THEN  POKE 768,100: POKE 769,70: CALL 770: ON X GOSUB 8421,8422,8423,8425: RETURN 
  88. 8402  IF PR = 50  THEN  FOR Y = 1 TO 45:Z =  PEEK( -16336) - PEEK( -16336): NEXT Y: GOSUB 8424: RETURN 
  89. 8405  IF PR = 99  THEN X =  INT( RND(1) *4) +1: ON X GOSUB 8427,8428,8427,8427: RETURN 
  90. 8421 BALL = BALL +1: HTAB 7: PRINT "HIGH AND OUTSIDE !! - BALL ";BALL: RETURN 
  91. 8422 BALL = BALL +1: HTAB 8: PRINT "LOW AND INSIDE !! - BALL ";BALL: RETURN 
  92. 8423 BALL = BALL +1: HTAB 5: PRINT "PITCH IS IN THE DIRT ! - BALL ";BALL: RETURN 
  93. 8424 STRIKE = STRIKE +1: HTAB 12: PRINT "CALL STRIKE ! - ";STRIKE: RETURN 
  94. 8425 BALL = BALL +1: HTAB 9: PRINT "WILD PITCH !! - BALL ";BALL: RETURN 
  95. 8426 STRIKE = STRIKE +1:X =  INT( RND(1) *5) +1: ON X GOSUB 8441,8442,8443,8444,8445: HTAB 10: PRINT STRIKE$;" STRIKE - ";STRIKE: RETURN 
  96. 8427  HTAB 8: PRINT "THAT'S A GOOD SOLID HIT !":HIT = HIT +1: RETURN 
  97. 8428 PR = 0: IF STRIKE <2  THEN STRIKE = STRIKE +1
  98. 8429  HTAB 3: PRINT "FOUL BALL - OUT OF PLAY - STRIKE ";STRIKE: RETURN 
  99. 8441 STRIKE$ = "HARD SLIDER": RETURN 
  100. 8442 STRIKE$ = "FAST BALL": RETURN 
  101. 8443 STRIKE$ = "KNUCKLE BALL": RETURN 
  102. 8444 STRIKE$ = "CURVE BALL": RETURN 
  103. 8445 STRIKE$ = "CHANGE-UP": RETURN 
  104. 8511 XN = 30:YN = 5: RETURN 
  105. 8512 XN = 125:YN = 5: RETURN 
  106. 8513 XN = 230:YN = 5: RETURN 
  107. 8514 XN = 85:YN = 35: RETURN 
  108. 8515 XN = 150:YN = 30: RETURN 
  109. 8516 XN = 208:YN = 55: RETURN 
  110. 8517 XN = 47:YN = 65: RETURN 
  111. 8518 XN = 133:YN = 75: RETURN 
  112. 8520  REM  PLOT BATTERS XN,YN
  113. 8525 XN = 152:YN = 130: RETURN 
  114. 8530  REM  PLOT BASEMENS XN,YN
  115. 8535 XN = 219:YN = 70: RETURN 
  116. 8540 XN = 130:YN = 34: RETURN 
  117. 8545 XN = 65:YN = 67: RETURN 
  118. 8605  HGR : HCOLOR= 1: FOR X = 0 TO 159: HPLOT 0,X TO 279,X: NEXT : RETURN 
  119. 8620  HCOLOR= 3
  120. 8625  HPLOT 0,67 TO 140,137 TO 279,67: HPLOT 140,136 TO 279,66: HPLOT 60,95 TO 140,55 TO 220,95: HPLOT 130,135 TO 130,150 TO 150,150 TO 150,135
  121. 8630  HPLOT 131,135 TO 131,149 TO 149,149 TO 149,135: HPLOT 140,141: HPLOT 138,142 TO 142,142: HPLOT 137,143 TO 143,143: HPLOT 137,144 TO 143,144: HPLOT 137,145 TO 143,145: RETURN 
  122. 8700  SCALE= 1: ROT= 0: DRAW 1 AT XN,YN: RETURN 
  123. 8730  DRAW 1 AT XO,YO: RETURN 
  124. 8815  IF STRIKES = 3  THEN OUTS = OUTS +1: FOR X = 1 TO 50:Y =  PEEK( -16336) - PEEK( -16336): NEXT 
  125. 8816  IF STRIKE = 3  THEN STRIKE = 0:BALL = 0: HOME : VTAB 23: HTAB 6: PRINT "STRIKE OUT !!!  NEXT BATTER": GOSUB 9130
  126. 8820  IF BALL = 4  THEN B(1) = B(1) +1: GOSUB 8535: HCOLOR= 0: GOSUB 8700
  127. 8825  IF BALL = 4  THEN BALL = 0:STRIKE = 0: FOR X = 1 TO 9: POKE 768,75: POKE 769,30: CALL 770: NEXT 
  128. 8830  IF OUT = 3  THEN TMAB = TMAB +1: IF TMAB$ = T1$  THEN H1T = H1T +HIT
  129. 8840  IF OUT = 3  AND TMAB$ = T2$  THEN H2T = H2T +HIT
  130. 8845  IF OUT = 3  THEN INNING = INNING +.5: GOSUB 9100: FOR X = 1 TO 3:B(X) = 0: ON X GOSUB 8535,8540,8545: HCOLOR= 1: GOSUB 8700: NEXT X:OUT = 0:HIT = 0
  131. 8850 TMAB$ = T2$: IF TMAB/2 =  INT(TMAB/2)  THEN TMAB$ = T1$
  132. 8851  IF Y = 99  THEN Y = 0: RETURN 
  133. 8855  IF B(1) = 2  THEN B(2) = B(2) +1:B(1) = 1
  134. 8860  IF B(2) = 2  THEN B(3) = B(3) +1:B(2) = 1
  135. 8865  IF B(3) > = 2  AND TMAB$ = T1$  THEN R1N = R1N +B(3) -1: GOSUB 8950:B(3) = 1
  136. 8870  IF B(3) > = 2  AND TMAB$ = T2$  THEN R2N = R2N +B(3) -1: GOSUB 8950:B(3) = 1
  137. 8900  RETURN 
  138. 8950  HOME : VTAB 23: HTAB 8: PRINT "THE ";TMAB$;" SCORE ";B(3) -1;" RUNS": GOTO 9130
  139. 9000  HOME : VTAB 10
  140. 9010  INPUT "WHAT IS THE HOME TEAM'S NAME ? ";T1$: PRINT : PRINT 
  141. 9040  INPUT "WHAT IS VISITING TEAM NAME ? ";T2$: RETURN 
  142. 9100  HOME : VTAB 22: HTAB 6: PRINT "AFTER ";INNING;" INNINGS THE SCORE IS...": GOSUB 9130
  143. 9110  HOME : VTAB 21: HTAB 20: PRINT "RUNS   HITS   ERRORS": PRINT T1$: PRINT T2$
  144. 9120  VTAB 22: HTAB 21: PRINT R1N;"      ";H1T;"       ";E1R: HTAB 21: PRINT R2N;"      ";H2T;"       ";E2R
  145. 9130  FOR X = 1 TO 30: FOR Y = 1 TO 30: NEXT Y,X: RETURN 
  146. 9200  HOME : VTAB 21
  147. 9210  HTAB 8: PRINT "THE ";TMAB$;" ARE AT BAT": PRINT : HTAB 4: PRINT "BALLS-";BALL;"      STRIKES-";STRIKE;"       OUTS-";OUT: RETURN